package com.allwees.bs.core.model.util;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.allwees.core.common.util.StringUtil;
import org.apache.commons.lang3.StringUtils;

/**
 * 注意：如果子类会被反序列化，则子类必须要有photos字段，并且覆写getter和setter，因为SB的Java单继承和FastJson反序列化机制，
 * 会导致“Inconsistent args_size for invokeinterface”错误
 *
 * @author yangylsky
 * @since 2019-12-19
 *
 */
public interface PhotosStr {
	@JsonIgnore
    @JSONField(serialize = false)
	String getPhotosStr();

	@JsonIgnore
    @JSONField(deserialize = false)
	void setPhotosStr(String photoStr);

	default String[] getPhotos() {
		return StringUtil.splitToArray(getPhotosStr());
	}

	default void setPhotos(String[] photos) {
		setPhotosStr(ArrayUtils.isEmpty(photos) ? null : StringUtils.join(photos, ","));
	}
}
